package com.jrauto.CarAppBackend.service;

/**
 * @author : huiMing
 * Date : 2025年09月12日 10:44
 * @version V1.0
 */

import com.jrauto.CarAppBackend.entity.dto.WebSocketMessageDTO;
import org.springframework.web.socket.WebSocketSession;

/**
 * WebSocket服务接口
 */
public interface WebSocketService {

    /**
     * 用户上线
     */
    void userOnline(Integer userId, WebSocketSession session);

    /**
     * 用户下线
     */
    void userOffline(Integer userId, String sessionId);

    /**
     * 发送消息给指定用户
     */
    boolean sendMessageToUser(Integer userId, WebSocketMessageDTO message);

    /**
     * 广播消息给聊天室内的用户
     */
    void broadcastToRoom(Integer roomId, WebSocketMessageDTO message);

    /**
     * 检查用户是否在线
     */
    boolean isUserOnline(Integer userId);

    /**
     * 获取用户的WebSocket会话
     */
    WebSocketSession getUserSession(Integer userId);

    /**
     * 推送离线消息
     */
    void pushOfflineMessages(Integer userId);

    /**
     * 发送心跳消息
     */
    void sendHeartbeat(WebSocketSession session);
}
